#include <stdio.h>
#include <string.h>

// BF字符串匹配算法
int BF(char *text, char *pattern) {
    int n = strlen(text);    // 主串长度
    int m = strlen(pattern); // 模式串长度
    int i, j;

    // 外层循环，i表示主串中的起始位置
    for (i = 0; i <= n - m; i++) {
        j = 0;
        // 内层循环，逐个字符比较主串和模式串的字符
        while (j < m && text[i + j] == pattern[j]) {
            j++; // 如果当前字符匹配，继续检查下一个字符
        }
        // 如果匹配到模式串的末尾，说明找到匹配
        if (j == m) {
            return i;  // 返回匹配的起始位置
        }
    }
    return -1; // 没有匹配，返回-1
}

int main() {
    // 主串和模式串的定义
    char text[] = "hello world";  // 主串
    char pattern[] = "world";     // 模式串

    // 调用BF算法进行匹配
    int result = BF(text, pattern);

    // 输出匹配结果
    if (result != -1) {
        printf("Pattern found at index: %d\n", result); // 找到匹配，输出起始位置
    } else {
        printf("Pattern not found\n"); // 未找到匹配
    }

    return 0;
}
